var error = "";
var errorDiv = document.getElementsByName("errorDiv");
function valName(str)
{
	var regExp = new RegExp("[a-zA-Z0-9]{3,256}");
	return regExp.test(str);
}

function valNumero(str)
{
	var regExp = new RegExp("[0-9]");
	return regExp.test(str);
}

function valAlfaNumerico(str)
{
	var regExp = new RegExp(/^([a-zA-Z0-9_\.\-])/);
	return regExp.test(str);
}
function valEmail(email)
{
	var regExp = new RegExp(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/);
	return regExp.test(email);
}

function valSenha(senha)
{
	if(senha.length > 100)
	{
		return false;
	}
	else if(senha.length < 6)
	{
		return false;
	}
	return true;
}

/**
	Funcao de validar cpf pega no site http://www.pcforum.com.br/
**/
function valCpf(cpf)
{
	cpf = cpf.substring(0,3)+cpf.substring(4,7)+cpf.substring(8,11)+cpf.substring(12,14);
	var numeros, digitos, soma, i, resultado, digitos_iguais;
	digitos_iguais = 1;
	if (cpf.length < 11)
	    return false;
	for (i = 0; i < cpf.length - 1; i++)
	    if (cpf.charAt(i) != cpf.charAt(i + 1))
		  {
		  digitos_iguais = 0;
		  break;
		  }
	if (!digitos_iguais)
	    {
	    numeros = cpf.substring(0,9);
	    digitos = cpf.substring(9);
	    soma = 0;
	    for (i = 10; i > 1; i--)
		  soma += numeros.charAt(10 - i) * i;
	    resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
	    if (resultado != digitos.charAt(0))
		  return false;
	    numeros = cpf.substring(0,10);
	    soma = 0;
	    for (i = 11; i > 1; i--)
		  soma += numeros.charAt(11 - i) * i;
	    resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
	    if (resultado != digitos.charAt(1))
		  return false;
	    return true;
	    }
	else
	    return false;
}

function valData(data)
{
	if(isDate(data))
	{
		return true;
	}
	return false;
}

function val_identic()
{

	error = "";
	var val = true;
	var email = document.getElementsByName("email")[0];
	var senha = document.getElementsByName("senha")[0];
	
	if(!valEmail(email.value))
	{
		error = error + "Email inválido <br/>";
		val = false;
	}
	if(!valSenha(senha.value))
	{
		error = error + "Senha inválida<br/>";
		val = false;
	}	
	
	errorDiv[0].innerHTML = error;
	return val;
}

function val_inf_pessoais()
{
	error = "";
	var val = true;
	var nome = document.getElementsByName("nome")[0];
	var cpf = document.getElementsByName("cpf")[0];
	var rua = document.getElementsByName("rua")[0];
	var numero = document.getElementsByName("numero")[0];
	var bairro = document.getElementsByName("bairro")[0];
	var cidade = document.getElementsByName("estado")[0];
	var estado = document.getElementsByName("estado")[0];
	
	if(!valName(nome.value))
	{
		error = error + "Nome inválido ou muito pequeno.<br/>";
		val = false;
	}			
	if(!valCpf(cpf.value))
	{
		error = error + "Cpf inválido <br/>";
		val = false;
	}	
	if(!valAlfaNumerico(rua.value))
	{
		error = error + "Rua inválida <br/>";
		val = false;
	}
	if(!valNumero(numero.value))
	{
		error = error + "Numero inválido <br/>";
		val = false;
	}
	if(!valAlfaNumerico(bairro.value))
	{
		error = error + "Bairro inválida <br/>";
		val = false;
	}
	if(!valAlfaNumerico(cidade.value))
	{
		error = error + "Cidade inválida<br/>";
		val = false;
	}
	if(!valAlfaNumerico(estado.value))
	{
		error = error + "Estado inválido<br/>";
		val = false;
	}

	errorDiv[0].innerHTML = error;
	return val;
}

function val_form_academic()
{
	error = "";
	var val = true;
	var anoI = document.getElementsByName("f_anoI");
	var anoF = document.getElementsByName("f_anoF");
	var form = document.getElementsByName("f_form");
	var uni = document.getElementsByName("f_uni");
	var tit = document.getElementsByName("f_tit");
	var ori = document.getElementsByName("f_ori");
	var area = document.getElementsByName("f_area");
	
	for(i = 0; i < anoI.length; ++i)
	{
		if(!valData(anoI[i].value))
		{
			error = error + "Data de início inválida <br/>";
			val = false;
		}
		if(!valData(anoF[i].value))
		{
			error = error + "Data de fim inválida <br/>";
			val = false;
		}
		if(!valAlfaNumerico(form[i].value))
		{
			error = error + "Formação inválida <br/>";
			val = false;
		}	
		if(!valAlfaNumerico(uni[i].value))
		{
			error = error + "Universidade inválida <br/>";
			val = false;
		}	
		if(!valAlfaNumerico(tit[i].value))
		{
			error = error + "Título inválido <br/>";
			val = false;
		}
		if(!valName(ori[i].value))
		{
			error = error + "Nome do orientador inválido <br/>";
			val = false;
		}	
		if(!valAlfaNumerico(area[i].value))
		{
			error = error + "Área inválida <br/>";
			val = false;
		}		
	}
	errorDiv[0].innerHTML = error;
	return val;
}

function val_atuacao_prof(){
	
	var inst = document.getElementsByName("ap_inst");
	var anoI = document.getElementsByName("ap_anoI");
	var anoF = document.getElementsByName("ap_anoF");
	var desc = document.getElementsByName("ap_desc");
	var val = true;
	error = "";

	for(i = 0; i < inst.length; ++i)
	{
		if(!valAlfaNumerico(inst[i].value))
		{
			error = error + "Instituição inválida <br/>";
			val = false;
		}
		if(!valData(anoI[i].value))
		{
			error = error + "Data de início inválida <br/>";
			val = false;
		}

		if(!valData(anoF[i].value))
		{
			error = error + "Data de fim inválida <br/>";
			val = false;
		}

		if(!valAlfaNumerico(desc[i].value))
		{
			error = error + "Descrição inválida <br/>";
			val = false;
		}						
	}
	
	errorDiv[0].innerHTML = error;
	return val;
}

function val_form_complementar(){

	var form = document.getElementsByName("fc_form");
	var anoI = document.getElementsByName("fc_anoI");
	var anoF = document.getElementsByName("fc_anoF");
	var val = true;
	error = "";
	
	for(i = 0; i < anoI.length; ++i)
	{
		if(!valData(anoI[i].value))
		{
			error = error + "Data de início inválida <br/>";
			val = false;
		}
		if(!valData(anoF[i].value))
		{
			error = error + "Data de fim inválida <br/>";
			val = false;
		}
		
		if(!valAlfaNumerico(form[i].value))
		{
			error = error + "Formação inválida <br/>";
			val = false;
		}		
	}
	errorDiv[0].innerHTML = error;
	return val;
}

function val_idiomas(){
	var idioma = document.getElementsByName("i_idi");
	var val = true;
	var error = "";
	
	for(i = 0; i < idioma.length; ++i)
	{
		if(!valAlfaNumerico(idioma[i].value))
		{
			error = error + "Idioma inválido <br/>";
			val = false;
		}		
	}
	errorDiv[0].innerHTML = error;
	return val;
}

function val_prod_biblio(){
	var tit = document.getElementsByName("pb_tit");
	var ano = document.getElementsByName("pb_ano");
	var aut = document.getElementsByName("pb_aut");
	var val = true;
	var error = "";
	
	for(i = 0; i < tit.length; ++i)
	{
		if(!valAlfaNumerico(tit[i].value))
		{
			error = error + "Titulo inválido inválido <br/>";
			val = false;
		}
		if(!valData(ano[i].value))
		{
			error = error + "Data de publicação inválida <br/>";
			val = false;
		}
		if(!valAlfaNumerico(aut[i].value))
		{
			error = error + "Autores inválidos <br/>";
			val = false;
		}
	}
	errorDiv[0].innerHTML = error;
	return val;
}
